package com.xy.biz.xd.domain.req;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

@Data
public abstract class ApplyDocumentFlowPrintAndBorrowAndDropRequest {

    /**
     * 紧急程度：0-正常，1-紧急
     */
    @NotNull
    private String urgent;
    /**
     * 申请原因
     */
    @NotBlank
    private String reason;
    /**
     * 批处理类型：0-非批处理，1-批处理父包，2-批处理子文件
     */
    @ApiModelProperty("批处理类型：0-非批处理，1-批处理父包，2-批处理子文件")
    @NotNull
    private Integer batchType;
    /**
     * 下一个处理的用户Id
     */
    @NotNull
    @ApiModelProperty(value = "下一个处理的用户Id" ,required = true)
    private Long nextHandleUserId;

    /**
     * 流程文件信息
     */
    @ApiModelProperty("流程文件信息")
    @NotEmpty
    private List<DocumentFlowInfo> documentFlowInfoList;

    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public static class DocumentFlowInfo {
        /**
         * 文件id
         */
        @ApiModelProperty("文件id")
        @NotBlank
        private Long documentId;
        /**
         * 文件编号
         */
        @ApiModelProperty("文件编号")
        @NotBlank
        private String documentCode;
        /**
         * 文件等级
         */
        @ApiModelProperty("文件等级")
        @NotBlank
        private Integer documentLevel;
        /**
         * 文件名称
         */
        @ApiModelProperty("文件名称")
        @NotBlank
        private String documentName;
        /**
         * 文件属性
         */
        @ApiModelProperty("文件属性")
        @NotBlank
        private String documentProperty;
        /**
         * 文件版本
         */
        @ApiModelProperty("文件版本")
        @NotBlank
        private String documentVersion;
    }
}
